package com.nd.android.u.filestoragesystem.externalInterface;

import java.util.ArrayList;

import android.content.Context;

import com.common.android.utils.http.HttpException;
import com.nd.android.u.filestoragesystem.business.bean.UploadImageParams;


/**
 * 文件操作接口申明。
 * <br>Created 2014-6-18 下午8:25:34
 * @version  v1.1
 * @author   suchangjun		
 *
 * @see 	 
 */
 public interface IExternalInterface {

	
    /**
     * 分页获取音乐/图片专辑列表
     * 
     * <br>Created 2014-6-12 下午2:50:54
     * @param context 上下文
     * @param type  参见@RequestType  类型：0=个人、1=组织、2=群、3=资源，必选
     * @param sid   session,必选
     * @param id    参见@MxResouceId 资源分类id: 1=音乐专辑 2=图片专辑 3=电影
     * @param requestClass  参见@FileClass  必选，分类：0=文件列表 1=目录列表 2=目录+文件列表，默认：0
     * @param id_max    返回小于该id的记录。可选，取第一页的传FileConstant.ID_MAX
     * @param id_min    返回大于该id的记录
     * @param sort  排序字段@Sort，可选。传null默认是主键id，time=按时间倒序排列
     * @param page_size 每页记录数。可选，默认20
     * @return ArrayList<FolderInfo>
     * @throws HttpException   请求错误异常
     * @author        :  huangszh
     */
     ArrayList<IFolder> getMxAlbums(Context context,int type,String sid,long id,int requestClass,
            long id_max,long id_min,String sort,int page_size) throws  HttpException;
    
    
    /**
     * 获取全部音乐/图片专辑
     * 
     * <br>Created 2014-6-19 下午4:04:45
     * @param context 上下文
     * @param type  参见@RequestType  类型：0=个人、1=组织、2=群、3=资源，必选
     * @param sid   session,必选
     * @param id    参见@MxResouceId 资源分类id: 1=音乐专辑 2=图片专辑 3=电影
     * @param requestClass  参见@FileClass  必选，分类：0=文件列表 1=目录列表 2=目录+文件列表，默认：0
     * @return  ArrayList<IFolder>
     * @throws HttpException 请求错误异常
     * @author        :  huangszh
     */
     ArrayList<IFolder> getAllMxAlbums(Context context,int type,String sid,long id,int requestClass) 
            throws  HttpException;
    
    /**
     * 获取专辑的歌曲列表/获取单曲列表/获取JAY相册图片列表/获取电影列表
     * 
     * <br>Created 2014-6-12 下午3:05:25
     * @param context 上下文
     * @param type  参见@RequestType 类型：0=个人、1=组织、2=群、3=资源，必选
     * @param sid   session,必选
     * @param id    参见@MxResouceId  资源分类id: 1=音乐专辑 2=图片专辑 3=电影
     * @param folderid  文件夹id
     * @param path  获取电影时传“/movie”,其他传null
     * @param id_max    返回小于该id的记录。可选，取第一页的传FileConstant.ID_MAX
     * @param id_min    返回大于该id的记录
     * @param page_size 每页记录数。可选，默认20
     * @return  ArrayList<FileInfo>
     * @throws HttpException 请求处理错误
     * @author        :  huangszh
     */
     ArrayList<IFile> getFileList(Context context,int type,String sid,long id,
            long folderid,String path,long id_max,long id_min,int page_size) throws  HttpException; 
    
    /**
     * 获取电影列表
     * 
     * <br>Created 2014-6-23 下午2:24:00
     * @param context 上下文
     * @param type  参见@RequestType 类型：0=个人、1=组织、2=群、3=资源，必选
     * @param sid   session,必选
     * @param id    参见@MxResouceId  资源分类id: 1=音乐专辑 2=图片专辑 3=电影
     * @param id_max    返回小于该id的记录。可选，取第一页的传FileConstant.ID_MAX
     * @param id_min    返回大于该id的记录
     * @param page_size 每页记录数。可选，默认20
     * @return  ArrayList<IFile>
     * @throws HttpException    请求错误异常
     * @author        :  huangszh
     */
     ArrayList<IFile> getMovieFileList(Context context,int type,String sid,long id,
            long id_max,long id_min,int page_size) throws  HttpException; 
    
    /**
     * 获取个人相册图片列表
     * 
     * <br>Created 2014-6-12 下午3:18:28
     * @param context 上下文
     * @param type  类型：0=个人、1=组织、2=群、3=资源，必选
     * @param sid   session,必选
     * @param id    资源分类id: 1=音乐专辑 2=图片专辑 3=电影
     * @param id_max    最小的记录id。可选，默认0
     * @param id_min    最大的记录id。可选，默认0
     * @param page_size 每页记录数。可选，默认20
     * @return ArrayList<FileInfo>
     * @throws HttpException 请求处理错误
     * @author        :  huangszh
     */
     ArrayList<IFile> getPersonalPhotoList(Context context,int type,String sid,long id,
            long id_max,long id_min,int page_size) throws HttpException;
    
     /**
      * 批量删除图片
      * 
      * <br>Created 2014-6-27 下午2:38:53
      * @param context  上下文
      * @param type 类型：0=个人、1=组织、2=群、3=资源，必选
      * @param sid  sid
      * @param uid  用户id
      * @param fids 图片id 
      * @return boolean
      * @throws HttpException   请求处理错误
      * @author        :  huangszh
      */
     boolean deletePhotos(Context context,int type,String sid,long uid,ArrayList<Long> fids) throws  HttpException;
    
    
    /**
     * 上传文件（照片，团徽）
     * 
     * <br>Created 2014-6-12 上午9:57:13
     * @param context 上下文
     * @param params 请求参数
     * @return  long 文件id，成功才会返回
     * @throws HttpException 请求处理错误
     * @author        :  huangszh
     */
     long upload(Context context,UploadImageParams params) throws HttpException;
    
}
